package com.wk.springboot.configuration;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface LocalMessageTransaction {
    String bizType();       // 业务类型，如"POINT_CHANGE"
    String bizKeySpEL();    // 业务主键的SPEL表达式，如"#param.id"
    int retryCount() default 3; // 重试次数
    long retryInterval() default 3000; // 重试间隔时间，单位毫秒
    Class<?> payloadClass() default Object.class; // 消息体类型
    EndpointType endpointType();  // 终端类型枚举
    String endpointConfigSpEL() default ""; // 终端配置的SPEL表达式

    ExecutionType execType() default ExecutionType.ASYNC; // 新增执行方式

}